<html>
<head><meta charset="utf-8"><title>Do I need to build stage2? · t-compiler/help · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/index.html">t-compiler/help</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html">Do I need to build stage2?</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="234408314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234408314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matt Taylor <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234408314">(Apr 13 2021 at 21:54)</a>:</h4>
<p>Hello all, hopefully this is the right stream for this question.</p>
<p>Essentially, we're building a cross compiler for a new OS (managarm), which involves porting std and libc. Since we don't add any compiler optimisations I figure that we don't <em>really</em> need to build stage2 of the compiler, is this correct? Or will this break things like proc-macros trying to link against rustc?</p>
<p>The rustc dev guide says some things about ABI differences between the stage1 and stage2 compilers, but we're not sure if this is going to cause a problem for us.</p>



<a name="234408716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234408716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234408716">(Apr 13 2021 at 21:58)</a>:</h4>
<p>I don't <em>know</em> of anything that would break, but installing a stage1 toolchain instead of just building it is tested less, so you might run into pre-existing bugs</p>



<a name="234408746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234408746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234408746">(Apr 13 2021 at 21:58)</a>:</h4>
<p>so I'd say "try it and see"</p>



<a name="234409446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234409446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matt Taylor <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234409446">(Apr 13 2021 at 22:04)</a>:</h4>
<p>Hmm, that makes sense. I think we'll just be prudent and take the 40m compile time hit in that case; would rather not run into strange bugs in future</p>



<a name="234531388"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234531388" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234531388">(Apr 14 2021 at 16:33)</a>:</h4>
<p>If you change the contents of the Rust compiler, then yes, you should probably continue to build to stage 2. Rust is an optimizing compiler, so it's possible for it to rearrange the contents of its functions on the final step, as small changes can perturb optimizations it does. If you did the stage 2 process of "build the optimizing compiler with the optimizing compiler" multiple times, until e.g. a "stage 5", you could hypothetically continue to get different binaries.</p>
<p>In particular, libstd is the big concern because its code is linked <em>directly</em> into the final binary of Rust programs.</p>



<a name="234532421"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234532421" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234532421">(Apr 14 2021 at 16:39)</a>:</h4>
<p>Historically, the only case in which you <em>had to</em> build stage2 is when using proc macros built by a compiler with a different ABI. But those were changed to be ABI-independent, so even this is no longer necessary today.</p>
<p>I never build stage2 locally, and so far that hasn't been an issue. I definitely recommend only building stage1, unless you really run into bugs with that configuration, because it just saves so much time.</p>



<a name="234532425"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234532425" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234532425">(Apr 14 2021 at 16:39)</a>:</h4>
<p><span class="user-mention" data-user-id="281757">@Jubilee</span> that's true, but I don't know how relevant it is? stage1 and stage2 should theoretically <em>generate</em> the same code, the only difference is that you can't <em>link</em> to a stage1 build using rustc_private</p>



<a name="234532592"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234532592" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234532592">(Apr 14 2021 at 16:40)</a>:</h4>
<blockquote>
<p>If you did the stage 2 process of "build the optimizing compiler with the optimizing compiler" multiple times, until e.g. a "stage 5", you could hypothetically continue to get different binaries.</p>
</blockquote>
<p>this is definitely not true, all versions of a compiler should generate the same code, even if they were built by different toolchains</p>



<a name="234532628"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234532628" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234532628">(Apr 14 2021 at 16:40)</a>:</h4>
<p>in fact the only reason to build "stage3" is to check that it's exactly the same as stage 2</p>



<a name="234532712"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234532712" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234532712">(Apr 14 2021 at 16:41)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/75362">https://github.com/rust-lang/rust/issues/75362</a></p>



<a name="234532743"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234532743" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234532743">(Apr 14 2021 at 16:41)</a>:</h4>
<p>Right, <code>rustc_private</code> is a good point here, those crates will use the ABI of the compiler that built them</p>



<a name="234532930"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234532930" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234532930">(Apr 14 2021 at 16:42)</a>:</h4>
<p><span class="user-mention silent" data-user-id="228354">Matt Taylor</span> <a href="#narrow/stream/182449-t-compiler.2Fhelp/topic/Do.20I.20need.20to.20build.20stage2.3F/near/234409446">said</a>:</p>
<blockquote>
<p>Hmm, that makes sense. I think we'll just be prudent and take the 40m compile time hit in that case; would rather not run into strange bugs in future</p>
</blockquote>
<p>to be clear, when I say "strange bugs", I mean bugs in rustbuild itself, not in the compiler</p>



<a name="234532952"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234532952" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234532952">(Apr 14 2021 at 16:42)</a>:</h4>
<p>you will see immediately if something goes wrong because the compiler won't run</p>



<a name="234532999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234532999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234532999">(Apr 14 2021 at 16:43)</a>:</h4>
<p>I don't think that's necessarily true, or at least, I'm confused by the confidence :)</p>



<a name="234533083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234533083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234533083">(Apr 14 2021 at 16:43)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116122">simulacrum</span> <a href="#narrow/stream/182449-t-compiler.2Fhelp/topic/Do.20I.20need.20to.20build.20stage2.3F/near/234532999">said</a>:</p>
<blockquote>
<p>I don't think that's necessarily true, or at least, I'm confused by the confidence :)</p>
</blockquote>
<p>I mean, I guess we don't run stage1 tests in CI. But I don't see any reason they'd behave any differently than stage2 (for things other than <code>run-make-fulldeps</code>)</p>



<a name="234533234"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234533234" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234533234">(Apr 14 2021 at 16:44)</a>:</h4>
<p>Hmmmmmmmmm maybe I misunderstand something then~<br>
My observation was <em>because</em> issues like that are open, i.e. I am assuming that we have not adequately proven that Rust has "perturbation-free" builds.</p>



<a name="234533235"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234533235" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234533235">(Apr 14 2021 at 16:44)</a>:</h4>
<p>Yeah, it may just work. Not sure. I think we had ignore-stage1 for some tests though.</p>



<a name="234533278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234533278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234533278">(Apr 14 2021 at 16:45)</a>:</h4>
<p>Regardless, building stage 2 is the safe thing to do and seems like good practice.</p>



<a name="234533379"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234533379" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jonas Schievink  [he/him] <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234533379">(Apr 14 2021 at 16:45)</a>:</h4>
<p>We have <code>run-make-fulldeps</code> and <code>ignore-stage1</code> mostly for stuff that links against the compiler crates (codegen backend tests, etc.)</p>



<a name="234533391"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234533391" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234533391">(Apr 14 2021 at 16:45)</a>:</h4>
<p><span class="user-mention" data-user-id="281757">@Jubilee</span> we aren't <em>testing</em> that we have perturbation free builds, which I think is different. Debian and other distros I think test it on stable releases.</p>



<a name="234533521"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234533521" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234533521">(Apr 14 2021 at 16:46)</a>:</h4>
<p>If stage2 is different than stage3 it's a bug</p>



<a name="234533735"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234533735" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234533735">(Apr 14 2021 at 16:47)</a>:</h4>
<p>I mean, yes, presumably, but it's one we're not detecting and fixing.</p>



<a name="234533923"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234533923" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234533923">(Apr 14 2021 at 16:48)</a>:</h4>
<p>My point though is that even if we do have a reproducibility bug, it's not one that's significant. That's why we stop at stage 2.</p>



<a name="234533999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234533999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234533999">(Apr 14 2021 at 16:49)</a>:</h4>
<p>(significant -&gt; would cause tests to fail)</p>



<a name="234534008"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234534008" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234534008">(Apr 14 2021 at 16:49)</a>:</h4>
<p>Ahhhh, I... do not have that confidence! :D</p>



<a name="234534079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234534079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234534079">(Apr 14 2021 at 16:49)</a>:</h4>
<p>Well otherwise all the stage1 tests would fail. And people run those locally all the time</p>



<a name="234534415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234534415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234534415">(Apr 14 2021 at 16:51)</a>:</h4>
<p>I actually have to always ignore this one run-make-fulldeps test, but this is getting a bit afield.</p>



<a name="234534523"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234534523" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234534523">(Apr 14 2021 at 16:52)</a>:</h4>
<p>Because it's in fulldeps <span aria-label="laughing" class="emoji emoji-1f606" role="img" title="laughing">:laughing:</span> that's my whole point is the abi is the only difference</p>



<a name="234534828"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234534828" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234534828">(Apr 14 2021 at 16:54)</a>:</h4>
<p>The only way for it to have a <em>logical</em> difference is either the nightly or beta toolchain to have unsoundness that affects the compiler itself, at which point we have much bigger problems.</p>



<a name="234534886"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234534886" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jubilee <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234534886">(Apr 14 2021 at 16:54)</a>:</h4>
<p>"ABI is the only difference" can be a big difference. <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="234535048"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234535048" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234535048">(Apr 14 2021 at 16:55)</a>:</h4>
<p>Well that's what I mean by "you'll notice it immediately"; stage1 doesn't have rustc_private available at all</p>



<a name="234535124"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234535124" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234535124">(Apr 14 2021 at 16:55)</a>:</h4>
<p>The <em>generated</em> abi is the same, it's only the abi <em>of the compiler itself</em> that's different</p>



<a name="234535432"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/182449-t-compiler/help/topic/Do%20I%20need%20to%20build%20stage2%3F/near/234535432" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/182449-t-compiler/help/topic/Do.20I.20need.20to.20build.20stage2.3F.html#234535432">(Apr 14 2021 at 16:57)</a>:</h4>
<p>In theory they should even be able to reuse the same incremental cache</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>